#ifndef __I386_MM_PAGGING_INIT_H__
#define __I386_MM_PAGGING_INIT_H__

#include "common/basictypes.h"

#define PAGE_PRESENT   0x00000001
#define PAGE_RWC       0x00000002        // 可读，可写，可执行
#define PAGE_RC        0x00000000        // 可读，可执行
#define PAGE_USER      0x00000004        // 用户级内存
#define PAGE_SYS       0x00000000        // 系统级内存


#define VIRTUAL_MEMSIZE  4000
#define PHY_MEMSIZE      128
#define LOWSYS_MEMSIZE   16

typedef uint32 phy_addr_t;

// pagging directory table
uint32 pdt[1024];
uint32 low16m_ptb[4096];

// 启动分页机制
void init_pagging(void);

// 获取内核部分 pdt 的地址
phy_addr_t get_kernel_pdt_address(void);

// 获取用户部分 pdt 的地址
phy_addr_t get_user_pdt_address(void);


#endif // __I386_MM_PAGGING_INIT_H__
